package com.yuke.cloud.service.omc.dto;

/*
 * <p>Company: Copyright (c) 2018. yuke All Rights Reserved. </br> </p>
 * <p>Title：yukemall </br> </p>
 * <p>com.yuke.cloud.service.omc.dto Description TODO </br> </p>
 * @Author wg
 * @Date   2019/5/10 14:52
 */

import lombok.Data;

import java.util.Date;
import java.util.List;

/**
 * 订单基本信息
 */
@Data
public class OrderBasicDto {
    private Long orderId;  // 订单号，非必填，当首次提交订单不填，重复提交订单时需要填
    private Boolean isFactory; // 是否是厂家直销商品订单，必填
    private Long factoryId; // 如果是厂家直销商品订单，则必须填厂家ID
    private Long shopId; // 店铺ID，该订单属于哪个店铺，必填
    private Byte orderType; // 订单类型，0：未知；1：消费者向店铺下单；2：店铺向平台仓库下单，一般为1，必填
    private Integer amountPayable; // 订单应该支付的金额，包含运费等，单位为分, 必填
    private Integer productPriceTotal; // 商品销售价总额，单位分
    private Integer discount; // 商品优惠总金额，单位分 含优惠券和红包金额
    private Long couponReceiveId;
    private Long redReceiveId;
    private Integer discountMoney;
    private Integer couponMoney;
    private Integer redMoney;
    private Integer reductionMoney;
    private Byte shippingType; // 商品配送方式，0：同城即时达（仓库发还是店铺发暂时还不确定），1：物流快递，2：同城快送（一般24小时左右送达），3：即时达（云顶店铺发货），4：即时达（由仓库发货）, 必填
    private Long expressId; // 选择配送的快递公司ID
    private Byte shippingTime; // 配送时间方式。 0：工作日、双休日与假日均可送货; 1：只有双休日、假日送货（工作日不用送货）; 2：只有工作日送货（双休日、假日不用送） （一般为写字楼/商用/学校等地址客户选择）
    private Date bestShippingTime; // 最佳送货时间
    private Integer freightPayable; // 应付配送费用，单位为分。应付配送费用为原有配送费用的基础上减掉优惠的配送费用。必填
    private Integer freightReduce; // 配送费优惠金额，单位为分
    private Integer insureFee; // 保价金额
    private Boolean isInvoice; // 是否索要发票，0：不需要，1：需要
    private Byte invoiceType; // 发票类型，1：个人，2：公司
    private String invoiceHead; // 发票抬头
    private String invoiceContent; // 发票内容
    private Integer invoiceTax; // 发票税额，单位为分
    private String postscript; // 用户附言，可用于每个订单
    private Byte payType;  // 支付平台类型，0：货到付款；1：在线支付(银行/银联)；2：在线支付(支付宝)；3：在线支付（微信）；4：个人账户支付；5：积分支付；6：积分混合购加支付宝 ；7：积分混合购加微信
    private Long warehouseId; // 对于非厂家直销商品订单，必填  商品所属仓库id
    private Integer pointBalance;   //商品所需积分
    private Byte orderStatus;   //订单状态
    private Date createTime;   //订单时间
    private List<OrderGoodsDto> orderGoodsDtos;
}
